package mongox

import "strings"

// EscapeRegexSpecialChars 转义正则表达式特殊字符
func EscapeRegexSpecialChars(s string) string {
	// MongoDB正则表达式的特殊字符
	// specialChars := []string{".", "*", "+", "?", "^", "$", "(", ")", "[", "]", "{", "}", "|", "\\"}
	specialChars := []string{".", "*", "+", "?", "^", "$", "(", ")", "[", "]", "{", "}", "|", "\\", "/", ",", ":", "=", "!", "<", ">", "&", "%", "#", "@", ";", " "}

	var result strings.Builder
	for _, char := range s {
		isSpecial := false
		for _, special := range specialChars {
			if string(char) == special {
				isSpecial = true
				result.WriteString("\\" + string(char))
				break
			}
		}
		if !isSpecial {
			result.WriteString(string(char))
		}
	}

	return result.String()
}
